// 泛型    <泛型类型名称>  名称可自定义

//泛型只会出现在  【函数】  【类】  【接口】

//函数
function join<T>(first: T, second: T) {
  // return `${first}${second}`;
  // console.log(`${first}${second}`);
}
join<string>("jspang", ".com");
join<number>(1, 2);

//泛型中的数组T
function myFun1<T>(params: T[]) {
  console.log(params);
}
myFun1<String>(["123"]);

function myFun2<T>(params: Array<T>) {
  console.log(params);
}
myFun2<String>(["123", "456"]);

// 多个泛型

function joinMore<T, P>(first: T, second: P) {
  console.log(`${first}${second}`);
}

joinMore<number, string>(1, "2");
